/*
# Trabajo Practico 2 Ejercicio 4 (Cliente)
# Segunda Entrega
#
# - Integrantes:
#	- Martinez, Guillermo	DNI: 34510461
#	- Meli, Marcos			DNI: 31832759
#	- Reyes, Leandro		DNI: 34213699
#	- Rodriguez, Lucas		DNI: 34265017
#	- Cortez, Martin		DNI: 30440023
#
# NOTA: Como la selección de señales queda a elección del programador, solo acolamos señales SIGUSR1
#
*/

#include "defines.h"

void term_handler(int);

int main()
{
	int ret_val, random=-1;
	FILE* fifo;
	
	ret_val = mkfifo(FIFO,0666);
	fifo = fopen(FIFO, "r");	
	if(!fifo)
		{ printf("Error al abrir FIFO\n"); exit(1); }
	
	if(signal(SIGINT, term_handler) == SIG_ERR)
		{	printf("Fallo el signal"); exit(-1);}
	if(signal(SIGTERM, term_handler) == SIG_ERR)
		{	printf("Fallo el signal"); exit(-1);}
	
	while(1)
	{
		if(fread(&random,sizeof(random),1,fifo) == 0)
		{
			fclose(fifo);
			printf("Terminando cliente...\n");
			exit(0);
		}
		printf("Recibo: %d\n",random);
	}
}

void term_handler(int signum)
{
	printf("Terminando cliente...\n");
	exit(0);
}
